package com.offcn;

import java.util.Scanner;

/*
先解释一下筛选法的步骤：
<1> 先将1挖掉(因为1不是素数)。
<2> 用2去除它后面的各个数，把能被2整除的数挖掉，即把2的倍数挖掉。
<3> 用3去除它后面的各数，把3的倍数挖掉。
<4> 分别用5…各数作为除数去除这些数以后的各数。
上述操作需要一个很大的容器去装载所有数的集合，只要满足上述条件，即2的倍数大于1的全部置0，3的倍数大于1的全部置0，
4的倍数大于1的全部置0……一直到这个数据集合的末尾，这样一来不为0的数就是素数了，然后按下标在里面进行查找就好了
 */
public class IsPrime_SecondWay {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个正整数：");
        int num = sc.nextInt();
        System.out.println("请输入"+ num + "个数字");
        int[] arr = new int[num];
        for(int i = 0;i < arr.length;i++) {

            arr[i] = sc.nextInt();
        }
        isPrime(arr);
    }

    private static void isPrime(int[] arr) {

        for (int i = 0; i <arr.length ; i++) {
            int n = arr[i];

        }

        for (int j = 0; j <arr.length ; j++) {
            if(0 != arr[j]) {
                for (int k = 1; k*j < arr.length ; k++) {

                    arr[k*j] = 0;

                }
            }
        }

        for (int i = 0; i < arr.length ; i++) {
            if(0 != arr[i]) {
                System.out.println(arr[i]);
            }
        }
    }
}
